package ar.com.gepp.torneo.entidades.impl;

import java.util.ArrayList;
import java.util.List;

public class Campeonato {
	private List<Grupo> faseUno = new ArrayList<Grupo>(0);
	private EliminatoriaDoble faseDos;
	Boolean faseUnoFinalized;
	Boolean faseDosFinalized;
	
	public Campeonato() {
		setFaseDosFinalized(false);
		setFaseUnoFinalized(false);
	}
	
	/**
	 * 
	 */
	public void jugar(){
		if (!getFaseUnoFinalized()){
			Boolean finalizado = true;
			for (Grupo grupo: faseUno) {
				grupo.jugarFechaActual();
				if (!grupo.finalizada()){
					finalizado = false;
				}
			}
			if (finalizado){
				setFaseUnoFinalized(true);
				
			}
		} else if (!getFaseDosFinalized()){
			faseDos.jugarFechaActual();
			setFaseDosFinalized(faseDos.edicionFinalizada());
		}
	}
	
	/**
	 * 
	 */
	public Boolean finalized(){
		if (getFaseUnoFinalized() && getFaseDosFinalized()){
			return true;
		} else {
			return false;
		}
	}
	

	public Boolean getFaseUnoFinalized() {
		return faseUnoFinalized;
	}

	public void setFaseUnoFinalized(Boolean faseUnoFinalized) {
		this.faseUnoFinalized = faseUnoFinalized;
	}

	public Boolean getFaseDosFinalized() {
		return faseDosFinalized;
	}

	public void setFaseDosFinalized(Boolean faseDosFinalized) {
		this.faseDosFinalized = faseDosFinalized;
	}

	public List<Grupo> getFaseUno() {
		return faseUno;
	}

	public void setFaseUno(List<Grupo> faseUno) {
		this.faseUno = faseUno;
	}

	public EliminatoriaDoble getFaseDos() {
		return faseDos;
	}

	public void setFaseDos(EliminatoriaDoble faseDos) {
		this.faseDos = faseDos;
	}

}
